iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0
Software Development

用leetcode系統化學習C語言系列 第 22

用指標練習比大小

  • 分享至 

  • xImage
  •  

在前幾天練完基本的指標與 malloc 之後,來找一題能用指標操作陣列、同時又不會太複雜的練習。
這題 LeetCode 1431 — Kids With the Greatest Number of Candies 剛好很適合,因為它需要用迴圈找出最大值,並且用指標操作結果陣列。雖然看起來簡單,但非常能穩固「如何用指標遍歷陣列」的概念。

💡 題目說明
給定一個整數陣列 candies,其中每個元素代表某位小孩的糖果數量,還有一個整數 extraCandies。
你要回傳一個布林陣列,表示每位小孩在拿到額外糖果後,是否能擁有「全場最多」的糖果。
範例 輸入:candies = [2,3,5,1,3], extraCandies = 3 輸出:[true,true,true,false,true]

🧠 解題思路
先用一個變數 maxCandies 找出目前的最大糖果數
建立一個布林陣列(使用 malloc 分配記憶體)
使用指標遍歷 candies,每個小孩加上 extraCandies 後與最大值比較
若達到或超過 maxCandies,則對應結果設為 true,否則為 false
https://ithelp.ithome.com.tw/upload/images/20251006/20169489IV5IJylk7A.png

✨ 學習心得
這題讓我熟悉了如何透過指標操作陣列內容,例如 *(candies + i) 比起 candies[i] 更能體會記憶體位移的原理,而且在實作過程中我也理解到 malloc 不只是分配空間而已,更代表著「記憶體掌控權」的開端。這題雖然邏輯不難,但卻是從「陣列」邁向「指標運算」的絕佳橋樑。


上一篇
用指標操作二維陣列
下一篇
指標回傳新陣列
系列文
用leetcode系統化學習C語言24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言